<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>oauth2client.appengine.OAuth2DecoratorFromClientSecrets</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="oauth2client-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
        <a href="oauth2client.appengine-module.html">Module&nbsp;appengine</a> ::
        Class&nbsp;OAuth2DecoratorFromClientSecrets
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class OAuth2DecoratorFromClientSecrets</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.appengine-pysrc.html#OAuth2DecoratorFromClientSecrets">source&nbsp;code</a></span></p>
<center>
<center>  <map id="uml_class_diagram_for_oauth2cl_11" name="uml_class_diagram_for_oauth2cl_11">
<area shape="rect" id="node1_15" href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__" title="Constructor" alt="" coords="18,348,443,367"/>
<area shape="rect" id="node1" href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html" title="An OAuth2Decorator that builds from a clientsecrets file." alt="" coords="5,317,455,373"/>
<area shape="rect" id="node2_16" href="oauth2client.appengine.OAuth2Decorator-class.html#credentials" title="oauth2client.appengine.OAuth2Decorator.credentials" alt="" coords="133,28,329,47"/>
<area shape="rect" id="node2_17" href="oauth2client.appengine.OAuth2Decorator-class.html#flow" title="oauth2client.appengine.OAuth2Decorator.flow" alt="" coords="133,47,329,65"/>
<area shape="rect" id="node2_18" href="oauth2client.appengine.OAuth2Decorator-class.html#set_credentials" title="oauth2client.appengine.OAuth2Decorator.set_credentials" alt="" coords="133,68,329,87"/>
<area shape="rect" id="node2_19" href="oauth2client.appengine.OAuth2Decorator-class.html#get_credentials" title="A thread local Credentials object." alt="" coords="133,87,329,105"/>
<area shape="rect" id="node2_20" href="oauth2client.appengine.OAuth2Decorator-class.html#set_flow" title="oauth2client.appengine.OAuth2Decorator.set_flow" alt="" coords="133,105,329,124"/>
<area shape="rect" id="node2_21" href="oauth2client.appengine.OAuth2Decorator-class.html#get_flow" title="A thread local Flow object." alt="" coords="133,124,329,143"/>
<area shape="rect" id="node2_22" href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_required" title="Decorator that starts the OAuth 2.0 dance." alt="" coords="133,143,329,161"/>
<area shape="rect" id="node2_23" href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_aware" title="Decorator that sets up for OAuth 2.0 dance, but doesn&#39;t do it." alt="" coords="133,161,329,180"/>
<area shape="rect" id="node2_24" href="oauth2client.appengine.OAuth2Decorator-class.html#has_credentials" title="True if for the logged in user there are valid access Credentials." alt="" coords="133,180,329,199"/>
<area shape="rect" id="node2_25" href="oauth2client.appengine.OAuth2Decorator-class.html#authorize_url" title="Returns the URL to start the OAuth dance." alt="" coords="133,199,329,217"/>
<area shape="rect" id="node2_26" href="oauth2client.appengine.OAuth2Decorator-class.html#http" title="Returns an authorized http instance." alt="" coords="133,217,329,236"/>
<area shape="rect" id="node2_27" href="oauth2client.appengine.OAuth2Decorator-class.html#callback_path" title="The absolute path where the callback will occur." alt="" coords="133,236,329,255"/>
<area shape="rect" id="node2_28" href="oauth2client.appengine.OAuth2Decorator-class.html#callback_handler" title="RequestHandler for the OAuth 2.0 redirect callback." alt="" coords="133,255,329,273"/>
<area shape="rect" id="node2_29" href="oauth2client.appengine.OAuth2Decorator-class.html#callback_application" title="WSGI application for handling the OAuth 2.0 redirect callback." alt="" coords="133,273,329,292"/>
<area shape="rect" id="node2" href="oauth2client.appengine.OAuth2Decorator-class.html" title="Utility for making OAuth 2.0 easier." alt="" coords="120,5,340,299"/>
</map>
  <img src="uml_class_diagram_for_oauth2cl_11.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_11" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
<pre class="literalblock">
An OAuth2Decorator that builds from a clientsecrets file.

Uses a clientsecrets file as the source for all the information when
constructing an OAuth2Decorator.

Example:

  decorator = OAuth2DecoratorFromClientSecrets(
    os.path.join(os.path.dirname(__file__), 'client_secrets.json')
    scope='https://www.googleapis.com/auth/plus')


  class MainHandler(webapp.RequestHandler):

    @decorator.oauth_required
    def get(self):
      http = decorator.http()
      # http is authorized with the user's Credentials and can be used
      # in API calls

</pre>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">filename</span>,
        <span class="summary-sig-arg">scope</span>,
        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>,
        <span class="summary-sig-arg">**kwargs</span>)</span><br />
      Constructor</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="oauth2client.appengine-pysrc.html#OAuth2DecoratorFromClientSecrets.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a></code></b>:
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#authorize_url">authorize_url</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#callback_application">callback_application</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#callback_handler">callback_handler</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#callback_path">callback_path</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#get_credentials">get_credentials</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#get_flow">get_flow</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#has_credentials">has_credentials</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#http">http</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_aware">oauth_aware</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_required">oauth_required</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#set_credentials">set_credentials</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#set_flow">set_flow</a></code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a></code></b> (private):
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#_create_flow" onclick="show_private();">_create_flow</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message" onclick="show_private();">_display_error_message</a></code>
      </p></div>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>,
      <code>__sizeof__</code>,
      <code>__str__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a></code></b>:
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#credentials">credentials</a></code>,
      <code><a href="oauth2client.appengine.OAuth2Decorator-class.html#flow">flow</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">filename</span>,
        <span class="sig-arg">scope</span>,
        <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>,
        <span class="sig-arg">**kwargs</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#OAuth2DecoratorFromClientSecrets.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">
Constructor

Args:
  filename: string, File name of client secrets.
  scope: string or iterable of strings, scope(s) of the credentials being
    requested.
  message: string, A friendly string to display to the user if the
    clientsecrets file is missing or invalid. The message may contain HTML
    and will be presented on the web interface for any method that uses the
    decorator.
  cache: An optional cache service client that implements get() and set()
    methods. See clientsecrets.loadfile() for details.
  **kwargs: dict, Keyword arguments are passed along as kwargs to
    the OAuth2WebServerFlow constructor.

</pre>
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@util.positional(3)</code></li>
    </ul></dd>
    <dt>Overrides:
        object.__init__
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="oauth2client-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Mon Sep 29 15:21:52 2014
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
